<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
<head>
    <th:block th:include="include :: header('代码生成列表')"/>
</head>
<body class="gray-bg">
<div class="container-div">
    <div class="row">
        <div class="col-sm-12 search-collapse">
            <form id="gen-form">
                <div class="select-list">
                    <ul>
                        <li>
                            表名称：<input type="text" name="tableName"/>
                        </li>
                        <li>
                            表描述：<input type="text" name="tableComment"/>
                        </li>
                        <li class="select-time">
                            <label>表时间： </label>
                            <input type="text" class="time-input" id="startTime" placeholder="开始时间"
                                   name="params[beginTime]"/>
                            <span>-</span>
                            <input type="text" class="time-input" id="endTime" placeholder="结束时间"
                                   name="params[endTime]"/>
                        </li>
                        <li>
                            <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i
                                    class="fa fa-search"></i>&nbsp;搜索</a>
                            <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i
                                    class="fa fa-refresh"></i>&nbsp;重置</a>
                        </li>
                    </ul>
                </div>
            </form>
        </div>
        <div class="col-sm-12 conf-box">
            <form id="gen-conf-form">
                <div class="select-list">
                    <ul>
                        <li>
                            作者：<input type="text" id="author" name="author" value="azhong"/>
                        </li>
                        <li>
                            包路径：<input type="text" name="packageName" id="packageName" value="com.code.generator"/>
                        </li>
                        <li>
                            前缀自动过滤：
                            <select name="autoRemovePre" id="autoRemovePre" style="width: 80px;">
                                <option value="0">是</option>
                                <option value="1">否</option>
                            </select>
                        </li>
                        <li>
                            表前缀：<input type="text" name="tablePrefix" id="tablePrefix" value="sys_"/>
                        </li>
                        <li>
                            持久层框架：
                            <select name="drone" id="drone" style="width: 80px;">
                                <option value="0">MyBatis</option>
                                <option value="1">JPA</option>
                            </select>
                        </li>
                    </ul>
                </div>
            </form>
        </div>

        <div class="btn-group-sm" id="toolbar" role="group">
            <a class="btn btn-success" onclick="javascript:batchGenCode()">
                <i class="fa fa-download"></i> 批量生成
            </a>
        </div>

        <div class="col-sm-12 select-table table-striped">
            <table id="bootstrap-table" data-mobile-responsive="true"></table>
        </div>
    </div>
</div>
<th:block th:include="include :: footer"/>
<script type="text/javascript">
    var prefix = ctx + "index";

    $(function () {
        var options = {
            url: prefix + "/list",
            sortName: "createTime",
            sortOrder: "desc",
            showExport: true,
            columns: [{
                checkbox: true
            },
                {
                    title: "序号",
                    align: 'center',
                    formatter: function (value, row, index) {
                        return $.table.serialNumber(index);
                    }
                },
                {
                    field: 'tableName',
                    title: '表名称',
                    align: 'center',
                    width: '20%',
                    sortable: false
                },
                {
                    field: 'tableComment',
                    title: '表描述',
                    align: 'center',
                    width: '20%',
                    sortable: false
                },
                {
                    field: 'createTime',
                    title: '创建时间',
                    align: 'center',
                    width: '20%',
                    sortable: true
                },
                {
                    field: 'updateTime',
                    title: '更新时间',
                    align: 'center',
                    width: '20%',
                    sortable: true
                },
                {
                    title: '操作',
                    width: '15%',
                    align: 'center',
                    formatter: function (value, row, index) {
                        var msg = '<a class="btn btn-primary btn-xs" href="#" onclick="genCode(\'' + row.tableName + '\')"><i class="fa fa-bug"></i>生成代码</a> ';
                        return msg;
                    }
                }]
        };
        $.table.init(options);
    });

    // 生成代码
    function genCode(tableName) {
        if (verifyParam()) {
            var name = radioName($("#drone").val());
            $.modal.confirm("确定使用 " + name + " 持久层生成 " + tableName + " 表代码吗？", function () {
                location.href = prefix + "/genCode/" + tableName + "?" + $("#gen-conf-form").serialize();
                layer.msg('执行成功,正在生成代码请稍后…', {icon: 1});
            })
        }
    }

    //批量生成代码
    function batchGenCode() {
        if (verifyParam()) {
            var rows = $.table.selectColumns("tableName");
            if (rows.length == 0) {
                $.modal.alertWarning("请选择要生成的数据");
                return;
            }
            var name = radioName($("#drone").val());
            $.modal.confirm("确定使用 " + name + " 持久层生成 " + rows.length + "条数据吗?", function () {
                location.href = prefix + "/batchGenCode?tables=" + rows + "&" + $("#gen-conf-form").serialize();
                layer.msg('执行成功,正在生成代码请稍后…', {icon: 1});
            });
        }
    }

    // 根据radio 选择 选择的属性名
    function radioName(status) {
        if (status == '0') {
            return 'Mybatis'
        } else {
            return 'JPA'
        }
    }

    /**
     * 验证参数
     */
    function verifyParam() {
        var author = $("#author").val();
        var packageName = $("#packageName").val();
        var autoRemovePre = $("#autoRemovePre").val();
        var tablePrefix = $("#tablePrefix").val();
        console.log(author + " " + packageName + " " + autoRemovePre + " " + tablePrefix)
        if (!author) {
            layer.alert("请填写作者名 ", {icon: 2});
            return false;
        }
        if (!packageName) {
            layer.alert("请填写包路径 ", {icon: 2});
            return false;
        }
        if (autoRemovePre == '0' && !tablePrefix) {
            layer.alert("请填写表前缀 ", {icon: 2});
            return false;
        }
        return true;
    }

</script>
</body>
</html>